import { exInput, exRequestData } from '@ve/common/components/extension'

export let TABLE = {
  name: '表格',
  list: [
    {
      name: '刷新',
      event: 'tableRefresh',
      explain: '重新请求表格数据并刷新数据展示。传递数据为上次任务数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
      },
    },
    {
      name: '获取选中数据',
      event: 'getTableColumnsSelect',
      explain: '获取表格的选中数据。传递数据为表格的选中数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
        maxRowNumber: {
          type: 'exInput',
          name: '最大选择行数',
          value: '0',
          tooltip: '0不限制',
        },
      },
    },
    {
      name: '点击勾选当前行',
      event: 'clickSelectRow',
      explain: '点击当前行勾选，用于后面参数获取。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
      },
    },
    {
      name: '清除所有行选中',
      event: 'clearCheckboxRow',
      explain: '将表格行的选中状态清除。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
      },
    },
    {
      name: '赋值给组件',
      event: 'valueToComponent',
      explain: '将触发事件的表格行的数据赋值给另一个组件的 formData，若选择赋值给表单项组件则会给组件所在的表单组件赋对应值。无传递数据。',
      extension: {
        valueToComponentData: {
          type: 'exTableValueToComponent',
          name: '',
          value: {
            valueToComponentInfo: {
              value: [],
              treeData: [],
              nowLayerId: '', //当前图层id 关闭用
              vtcLayerId: '',
              valueKey: '',
              labelKey: '',
            },
            selectLayerList: {
              value: [],
              hasCheckbox: true,
              treeData: '$getLayers',
            },
          },
        },
      },
    },
    {
      name: '清空表格参数',
      event: 'clearTableFormData',
      explain: '清空表格组件的 formData。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
      },
    },
    {
      name: '选中表格数据',
      event: 'selectTableRows',
      explain: '将配置的表格数据行切换为选中状态。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: true,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
        useEventData: {
          type: 'exSwitch',
          name: '使用事件数据',
          value: false,
          tooltip: '使用当前触发事件的表格行数据，当开启后‘行下标’配置将失效',
        },
        rowNumber: {
          type: 'exInput',
          name: '行下标',
          value: '0',
          tooltip: '支持0,1,2；或者all',
        },
      },
    },
    {
      name: '触发表格点击',
      event: 'clickTableRow',
      explain: '触发表格组件的点击事件，当表格点击事件执行完成后才会执行下一个动作。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: true,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
        selectRowType: {
          type: 'exSelectRowType',
          name: '获取下标方式',
          value: {
            type: '1', //1固定下标 2动态获取
            index: 0, //固定获取
            //动态匹配
            key: '',
          },
        },
        indexOffset: {
          type: 'exInputNumber',
          name: '下标偏移量',
          value: 0,
          tooltip: '匹配下标的偏移量，如 1 则为匹配行的下一行，-1 则为匹配行的上一行',
        },
      },
    },
    {
      name: '触发表格双击',
      event: 'dblClickTableRow',
      explain: '触发表格组件的双击事件，当表格双击事件执行完成后才会执行下一个动作。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: true,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
        //new
        selectRowType: {
          type: 'exSelectRowType',
          name: '获取下标方式',
          value: {
            type: '1', //1固定下标 2动态获取 3事件数据
            index: 0, //固定获取
            //动态匹配
            key: '',
          },
        },
        indexOffset: {
          type: 'exInputNumber',
          name: '下标偏移量',
          value: 0,
          tooltip: '匹配下标的偏移量，如 1 则为匹配行的下一行，-1 则为匹配行的上一行',
        },
      },
    },
    {
      name: '复制单元格(右键)',
      event: 'copyTableCell',
      explain: '将触发事件的表格组件的当前单元格的数据复制到剪粘板。无传递数据。',
      extension: {},
    },
    {
      name: '复制单行(右键)',
      event: 'copyTableRow',
      explain: '将触发事件的表格组件的当前行的数据复制到剪粘板。无传递数据。',
      extension: {
        hasHeader: {
          type: 'exSwitch',
          name: '带表头',
          value: false,
        },
      },
    },
    {
      name: '复制选中行',
      event: 'copyTableRows',
      explain: '将表格组件的选中行的数据复制到剪粘板。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
        hasHeader: {
          type: 'exSwitch',
          name: '带表头',
          value: false,
        },
      },
    },
    {
      name: '复制所有行',
      event: 'copyTableAllRows',
      explain: '将表格组件的所有行的数据复制到剪粘板。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
        hasHeader: {
          type: 'exSwitch',
          name: '带表头',
          value: false,
        },
      },
    },
    {
      name: '清空表格数据',
      event: 'clearTableAllRows',
      explain: '将表格组件的展示数据清空，但是表格组件的 requestData 仍然存在。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: true,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
      },
    },
    {
      name: '获取表格编辑状态数据',
      event: 'getRecordset',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
      },
    },
    {
      name: '删除选中数据',
      event: 'delTableColumnsSelect',
      explain: '删除表格的选中数据。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
      },
    },
    {
      name: '更新数据',
      event: 'updateTableData',
      explain: '根据字段更新表格数据的某些值。无传递数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
        matchField: {
          type: 'exInput',
          name: '匹配字段',
          value: '',
          tooltip: '用作与现有缓存值比较，查找唯一数据的字段',
        },
        updateField: {
          type: 'exInput',
          name: '更新字段',
          value: '',
          tooltip: '需要更新表格数据的字段，多个字段用 , 拼接。不填写则默认更新所有字段。',
        },
      },
    },
    {
      name: '获取行数据',
      event: 'getTableDataByKey',
      explain: '根据字段获取表格对应行数据。传递数据为匹配行数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
        matchField: {
          type: 'exInput',
          name: '匹配字段',
          value: '',
          tooltip: '用作与现有缓存值比较，查找唯一数据的字段',
        },
      },
    },
    {
      name: '获取列数据',
      event: 'getTablecolumnData',
      explain: '根据字段获取表格对应列数据。传递数据为匹配列数据。',
      extension: {
        tableId: {
          type: 'exTreeSelect',
          name: '表格选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules', //后面优化 只获取表格组件
          filter: 'uiTable',
        },
        getDataField: {
          type: 'exTableDataField',
          name: '获取列',
          value: [],
        },
      },
    },
    {
      name: '表格右键菜单禁用',
      event: 'tableRightMenuDisabled',
      explain: '使表格右键菜单禁用。无传递数据。',
      extension: {
        moduleId: {
          type: 'exTreeSelect',
          name: '组件选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules',
          filter: 'uiTable',
        },
        menuList: {
          type: 'exTableMenuSelect',
          name: '菜单选择',
          value: [],
        },
      },
    },
    {
      name: '表格右键菜单启用',
      event: 'tableRightMenuEnabled',
      explain: '使表格右键菜单启用。无传递数据。',
      extension: {
        moduleId: {
          type: 'exTreeSelect',
          name: '组件选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules',
          filter: 'uiTable',
        },
        menuList: {
          type: 'exTableMenuSelect',
          name: '菜单选择',
          value: [],
        },
      },
    },
    {
      name: '新增表格数据',
      event: 'addTableData',
      explain: '新增一条表格数据。无传递数据。',
      extension: {
        moduleId: {
          type: 'exTreeSelect',
          name: '组件选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules',
          filter: 'uiTable',
        },
        // round: exSwitch('进入编辑模式', false), // 取消配置 默认进入编辑模式
        api: exInput('提交接口Api', ''),
        method: exInput('Method', ''),
        requestData: exRequestData('自定义参数', []),
      },
    },
    {
      name: '聚焦表格单元格',
      event: 'focusTableCell',
      explain: '使表格可编辑的单元格获取焦点。无传递数据。',
      extension: {
        moduleId: {
          type: 'exTreeSelect',
          name: '组件选择',
          value: [],
          hasCheckbox: false,
          treeData: '$getPageTableModules',
          filter: 'uiTable',
        },
        selectRow: {
          type: 'exSelectRowType',
          name: '行选择',
          value: {
            type: '1', //1固定下标 2动态获取 3事件数据
            index: 0, //固定获取
            //动态匹配
            key: '',
          },
        },
        selectCol: {
          type: 'exSelectCol',
          name: '列选择',
          value: '',
          typeFilter: ['input', 'select'],
        },
      },
    },
  ],
}
